Within an enterprise, it is not unusual for the enterprise's data to be stored in different types of databases. For example, some of the enterprise's data may be stored in a relational database, such as a structured query language (SQL) database, while other data may be stored in a multi-dimensional database, such as an on-line analytical processing (OLAP) “cube,” while still other data is stored using other systems. Different data may be stored in different systems for many reasons, including tradition, availability of software for one platform, performance considerations, reporting flexibility, and countless other reasons.
Users within an enterprise may want to access data stored in different systems. Unfortunately, accessing multiple different systems may be problematic, because each of the different systems may be accessible only through its own query and reporting language. For example, an SQL relational database is queried using an SQL query, while a multi-dimensional database may be queried using the Multi-Dimensional Expressions (MDX) query. Other systems will call for other languages. This is further complicated by the fact that, for traditional types of computation, such as arithmetic computation, one type of query language may be used for a particular platform, while, for financial calculations, another type of query language may be used on that same platform.
To access different systems, users typically have to be versed in each of the query languages. Even when seeking similar data from the different systems, an appropriate query will have to be created in each of the respective query languages in order to retrieve the desired data. The problem is further complicated by the fact that different query languages have different capabilities in terms of dealing with different types of hierarchies or their ability to be adapted to retrieve data for a different scope. Thus, even one skilled in different query languages may not be able to readily translate a type of query from one language to another, but will have to formulate new queries to address the limitations and capabilities of each of the different languages used. In addition, as arithmetic and financial calculations becomes more complex or more specialized, the more different will be the queries used to perform those calculations in each of the different systems.